package com.web.dao;


import com.web.dto.UserInfoDTO;
import com.web.model.UserInfo;
import java.util.List;
import java.util.Map;

/**
* 用户信息持久层
*
* @author yangguanzan
* @date 2020-10-19
*/
public interface UserInfoDao  {

   /**
    * 主键查找用户信息
    *
    * @param id 主键
    * @return 用户信息
    */
   UserInfoDTO findById(Long id);

   /**
    * 插入数据
    *
    * @param userInfo 用户信息
    * @return 更新行数
    */
   Integer insert(Map userInfo);

   /**
    * 通过昵称和城市查找用户信息
    *
    * @return 用户信息集合
    */
   List<UserInfo> findByNickNameAndCity(Map map);

   /**
    * 通过昵称模糊查找用户信息
    *
    * @param  nickName 昵称
    * @return 用户信息集合
    */
   List<UserInfo> findLikeNickName(String nickName);

   /**
    * 查询全部数据
    *
    * @return 用户信息集合
    */
   List<UserInfo> findAll();

   /**
    * 查询全部用户数据和卡片数据
    *
    * @return 一对一的用户数据和卡片数据
    */
   List<UserInfo> findUserInfoAndCard();

   /**
    * MyBaits if 条件查询
    * @param userInfo 查询的条件对象
    * @return 用户数据
    */
   List<UserInfo> findUserInfoByObject(UserInfo userInfo);

   /**
    *  MyBaits  chooose条件查询
    * @param userInfo 查询的条件对象
    * @return 用户数据
    */
   List<UserInfo> findUserInfoByChoose(UserInfo userInfo);

   /**
    *  更新用户信息
    * @param userInfo 用户信息
    * @return 用户数据
    */
   Integer updateUser(UserInfo userInfo);

   /**
    *  根据用户id集合查询用户信息
    * @param ids 用户id集合
    * @return 用户数据
    */
   List<UserInfo>  findByIds(List<Long> ids);

   /**
    *  根据用户id数组查询用户信息
    * @param ids 用户id数组
    * @return 用户数据
    */
   List<UserInfo>  findByIdArray(Long[] ids);


   /**
    * 查询全部数据
    *
    * @return 用户信息集合
    */
   List<UserInfoDTO> findByPage();




}
